package com.lottery.obtainData;

import com.lottery.entity.Bettinginfo;
import com.lottery.entity.RobotInfo;
import com.lottery.service.qiuqiu.JedisClient;
import com.lottery.service.qiuqiu.robotService.RobotUserService;
import com.lottery.utils.CheckOnlieUser;
import com.lottery.utils.DateUtil;
import com.lottery.utils.RandCodeUtil;
import com.lottery.utils.RobotParams;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.ArrayList;

@Component
public class ThreadRobotOnlineNum implements Runnable {
	@Override
	public void run() {

	}
//	private static final Logger logger = LoggerFactory.getLogger(CheckOnlieUser.class);
//
//	@Autowired
//	private JedisClient jedisClient;
//
//	@Override
//	public void run() {
//		logger.debug("*****************************ThreadRobotOnlineNum start *********************");
//		// TODO Auto-generated method stub
//		while (true) {
//			try {
//				if (!RobotParams.bestart) {
//					try {
//						Thread.sleep(10000);
//					} catch (InterruptedException e) { // TODO Auto-generated catch block
//						e.printStackTrace();
//					}
//					continue;
//				}
//
//				int hour = Integer.parseInt(DateUtil.getFormatDate("HH"));
//				if (hour > 2 && hour < 8) { // 这个时段机器人都下线
//					RobotUserService.arrayRobotOnline.clear();
//					try {
//						Thread.sleep(6 * 60 * 58 * 1000);
//					} catch (InterruptedException e) { // TODO Auto-generated catch block
//						e.printStackTrace();
//					}
//					// RobotParams.robotSscBetting.clear();
//					// RobotParams.robotPc28Betting.clear();
//				} else {
//					int onlineNum = RandCodeUtil.getRandNum(RobotParams.onlineNumMin, RobotParams.onlineNumMax);
//					int need = onlineNum - RobotUserService.arrayRobotOnline.size();
//					boolean isAdd = true;
//					if (need == 0) {
//						continue;
//					}
//					if (need < 0) {
//						need = Math.abs(need);
//						isAdd = false;
//					}
//					if (need > (int) (RobotParams.onlineNumMax * 0.05)
//							&& RobotUserService.arrayRobotOnline.size() != 0) {
//						need = (int) (RobotParams.onlineNumMax * 0.05);
//					}
//
//					logger.debug("*****ThreadRobotOnlineNum need {}{}, size:{}", isAdd ? "" : "-", need,
//							RobotUserService.arrayRobotOnline.size());
//
//					if (isAdd) {
//						int addTimes = 0;
//						int totalNum = RobotParams.robotinfo.size();
//						for (int i = 0; i < need; i++) {
//							RobotInfo robotInfo = RobotParams.robotinfo.get(RandCodeUtil.getRandNum(0, totalNum - 1));
//							int robotid = robotInfo.getRobotId();
//
//							boolean beAdd = true;
//							for (RobotInfo one : RobotUserService.arrayRobotOnline) {
//								if (one.getRobotId() == robotid) {
//									beAdd = false;
//									break;
//								}
//							}
//							if (!beAdd) { // 防止一直拉取重复id时，无限循环
//								addTimes++;
//								if (addTimes == 5) {
//									addTimes = 0;
//									continue;
//								}
//								i--;
//								continue;
//							}
//							addTimes = 0;
//							RobotUserService.arrayRobotOnline.add(robotInfo);
//
//							if (!RobotParams.robotSscBetting.containsKey(robotid)) {
//								ArrayList<Bettinginfo> betList = new ArrayList<Bettinginfo>();
//								RobotParams.robotSscBetting.put(robotid, betList);
//							}
//
//							if (!RobotParams.robotPc28Betting.containsKey(robotid)) {
//								ArrayList<Bettinginfo> betList = new ArrayList<Bettinginfo>();
//								RobotParams.robotPc28Betting.put(robotid, betList);
//							}
//
//							try {
//								Thread.sleep(100);
//							} catch (InterruptedException e) { // TODO Auto-generated catch block
//								e.printStackTrace();
//							}
//						}
//					} else {
//						for (int i = 0; i < need; i++) { // 从尾部删除
//							RobotUserService.arrayRobotOnline.remove(RobotUserService.arrayRobotOnline.size() - 1);
//							try {
//								Thread.sleep(100);
//							} catch (InterruptedException e) { // TODO Auto-generated catch block
//								e.printStackTrace();
//							}
//						}
//					}
//				}
//
//				try {
//					Thread.sleep(RandCodeUtil.getRandNum(5000, 10000));
//				} catch (InterruptedException e) { // TODO Auto-generated catch block
//					e.printStackTrace();
//				}
//			} catch (Exception e) { // TODO Auto-generated catch block
//				e.printStackTrace();
//				logger.error("ThreadRobotOnlineNum error", e);
//			}
//		}
//	}

}
